
package com.cyandpos.pad.login.presenter;


import com.cyandpos.pad.common.commondata.ErpCommonData;
import com.cyandpos.pad.common.commondata.SktConfigConstant;
import com.cyandpos.pad.common.commondata.SktConfigIdPrintTypeConstant;
import com.cyandpos.pad.common.commondata.SktConfigPeripheralConstant;
import com.cyandpos.pad.common.commondata.SktConfigPrintConstant;
import com.cyandpos.pad.login.configs.GetConfigs;
import com.cyandpos.pad.login.model.ILoginModel;
import com.cyandpos.pad.login.model.LoginModelImpl;
import com.cyandpos.pad.login.view.ILoginView;
import com.cyandpos.pad.posdata.ConfigInfo;
import com.cyandpos.pad.posdata.LoadConfig;
import com.cyandpos.pad.posdata.Machine;

/**
 * Created by Yangzw on 2017/2/25.
 * 登录业务处理
 */

public class LoginPresenter implements ILoginPresenter, LoginModelImpl.OnLoadLoginConfigListener{
    private ILoginModel mLoginModel;
    private ILoginView mLoginView;
    public LoginPresenter(ILoginView loginView){
        this.mLoginView = loginView;
        this.mLoginModel = new LoginModelImpl();
    }
    /**
     * @param
     */
    @Override
    public void onLoadLoginConfigSuccess(LoadConfig loadConfig) {
        mLoginView.dismissProgress();
        initLoadData(loadConfig);
        mLoginView.loginedSuccess(loadConfig);
    }

    @Override
    public void onLoadLoginConfigFailure(String errorMsg) {
        mLoginView.dismissProgress();
        mLoginView.showLoadFailureMsg(errorMsg);
    }

    private void initLoadData(LoadConfig loadConfig){
        ErpCommonData.sktno = loadConfig.getSkt().getSktno();
        ErpCommonData.shopId=loadConfig.getShopId();
        ErpCommonData.loadConfig =loadConfig;
        ErpCommonData.proType = ErpCommonData.loadConfig.getSkt().getPermit_zg();

        for(ConfigInfo configInfo : GetConfigs.getConfigInfos()){
            if (ErpCommonData.loadConfig.getConfigs() != null){
                for(ConfigInfo erpItem :ErpCommonData.loadConfig.getConfigs()){
                    if(configInfo.getId() == erpItem.getId()){
                        if(erpItem.getValue()!=null && !erpItem.getValue().equals("")){
                            configInfo.setValue(erpItem.getValue());
                        }
                    }
                }
            }
        }

        if (ErpCommonData.loadConfig.getSkt()!=null && ErpCommonData.loadConfig.getSkt().getSktconfigList().size()>0){
            for (int i=0;i<ErpCommonData.loadConfig.getSkt().getSktconfigList().size();i++){
                if (ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getLx()
                        .equals(SktConfigConstant.SKT_CONFIG_TYPE_PRINTING)) { //类型=4 打印相关
                    String id = ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getId();
                    if(id.equals(SktConfigIdPrintTypeConstant.SKT_CONFIG_PRINT_SALES_SLIP_NUM)){
                        ErpCommonData.allvpayPrintNum = ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getValue();
                    }if (id.equals(SktConfigIdPrintTypeConstant.SKT_CONFIG_AUTO_PRINT_TICKET)){
                        ErpCommonData.isAutoSaveTicket = ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getValue();
                    }else if (id.equals(SktConfigIdPrintTypeConstant.SKT_CONFIG_PRINT_HEADER)){
                        ErpCommonData.ticketHeader = ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getValue();
                    }else if (id.equals(SktConfigIdPrintTypeConstant.SKT_CONFIG_PRINT_END)){
                        ErpCommonData.ticketEnd = ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getValue();
                    }else if (id.equals(SktConfigIdPrintTypeConstant.SKT_CONFIG_PRINT_PRINT_QRCODE)){
                        ErpCommonData.printQrCode = ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getValue();
                    }else if (id.equals(SktConfigIdPrintTypeConstant.SKT_CONFIG_PRINT_QRCODECONTENT)){//小票 打印的二维码内容
                        ErpCommonData.QrCodecontent = ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getValue();
                    }else if (id.equals(SktConfigIdPrintTypeConstant.SKT_CONFIG_PRINT_USPEND_ORDER_PRINT)){//
                        ErpCommonData.QrCodecontent = ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getValue();
                    }
                }else if(ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getLx().equals(SktConfigConstant.SKT_CONFIG_TYPE_EXTERNAL_EQUIPMENT)){//外设配置
                    String id = ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getId();
                    if(id.equals(SktConfigPeripheralConstant.SKT_CONFIG_IMAGE_DATA)){
                        ErpCommonData.imageData = ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getValue();
                    }else if(id.equals(SktConfigPeripheralConstant.SKT_CONFIG_IMAGE_TIME)){
                        ErpCommonData.imageTime = ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getValue();
                    }else if(id.equals(SktConfigPeripheralConstant.SKT_CONFIG_SWIPE)){
                        ErpCommonData.managerSwipe = ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getValue();
                    }
                }
                else if(ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getLx().equals(SktConfigConstant.SKT_CONFIG_TYPE_PAYMENT)){//支付配置
                    String id = ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getId();
                    if(id.equals(SktConfigPeripheralConstant.SKT_CONFIG_SL)){
                        ErpCommonData.slData = ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getValue();
                    }else if(id.equals(SktConfigPeripheralConstant.SKT_CONFIG_SALE_ZERO)){
                        ErpCommonData.isSaleZero = ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getValue();
                    }else if(id.equals(SktConfigPeripheralConstant.SKT_CONFIG_GQ_SUM)){
                        ErpCommonData.gqSum = ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getValue();
                    }
                }
                else if(ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getLx().equals(SktConfigConstant.SKT_CONFIG_TYPE_GOOD)){//商品配置
                    String id = ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getId();
                    if(id.equals(SktConfigPeripheralConstant.SKT_CONFIG_GOOD_ADD)){
                        ErpCommonData.isGoodAdd = ErpCommonData.loadConfig.getSkt().getSktconfigList().get(i).getValue();
                    }
                }
            }
        }

    }

    /**
     * @param uname 用户名
     * @param pword 密码
     */
    @Override
    public void login(String uname, String pword, String mac) {
        mLoginView.showProgress();
        Machine machine = new Machine();
        machine.setPersonCode(uname);
        machine.setPassword(pword);
        machine.setConfigs(GetConfigs.getConfigInfos());
        mLoginModel.loadLoginConfig(machine,mac,this);
    }



}

